library(leaflet)
library(jsonlite)
Mig <- sf::st_read("D:/R Studio/geospatial-datascience-r/geospatial-datascience-r/data/BGD_ADMIN_1.geojson")
## Reading layer `BGD_ADMIN_1' from data source
## `D:\R Studio\geospatial-datascience-r\geospatial-datascience-r\data\BGD_ADMIN_1.geojson'
## using driver `GeoJSON'
## Simple feature collection with 8 features and 14 fields
## Geometry type: MULTIPOLYGON
## Dimension: XY
## Bounding box: xmin: 88.00863 ymin: 20.59061 xmax: 92.68031 ymax: 26.63451
## Geodetic CRS: WGS 84
Int_MigPal <- colorQuantile(colorRamp(c("#1d91c0","#004BED", "#0043D3", "#003BBA","#0033A0", "#002B87", "#00236D","#001B54")), Mig$Int_Mig, n=8)
#set pop-up content
Mig$popup <- paste("<strong>",Mig$ADM1_EN, "</br>",
"</strong>","International Migration:", prettyNum(Mig$Int_Mig, big.mark = ","))
Int_Mig <- leaflet()%>%
addPolygons(data = Mig,
stroke = TRUE,
weight = 1.3,
opacity = 1,
color = ~Int_MigPal(Int_Mig),
fillOpacity = 0.9,
popup = ~popup,
highlightOptions = highlightOptions(color = "#FF671F", weight = 1.5,
bringToFront = TRUE, fillOpacity = 0.5),) %>%
addLegend("bottomright",opacity = 1,
colors =c("#1d91c0","#004BED", "#0043D3", "#003BBA", "#0033A0", "#002B87", "#00236D", "#001B54"),
title = "International Migration",
labels= c("Rangpur","Dhaka","Barishal","Mymensingh", "Chattogram","Rajshahi", "Khulna", "Sylhet")
) %>%
addProviderTiles(providers$Esri.WorldImagery, group = "Basemap - aerial") %>%
addProviderTiles(providers$CartoDB.Positron, group = "Basemap - greyscale") %>%
addProviderTiles(providers$CartoDB.DarkMatter, group = "Basemap - dark") %>%
addEasyButton(easyButton(
icon="fa-globe", title="Zoom to Level 1",
onClick=JS("function(btn, map){ map.setZoom(1); }"))) %>%
addEasyButton(easyButton(
icon="fa-crosshairs", title="Locate Me",
onClick=JS("function(btn, map){ map.locate({setView: true}); }")))%>%
addLayersControl(
baseGroups = c("Basemap - dark","Basemap - greyscale","Basemap - aerial"),
options = layersControlOptions(collapsed = TRUE))
Int_Mig